package com.rockwell.sniffyhunter.utils;

import com.rockwell.sniffyhunter.model.TreasureUnloader;

public enum TreasureUnloaderState implements IStateMachine {
	START {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return MOVE_TO_UNLOAD_POS;
		}
	},
	MOVE_TO_UNLOAD_POS {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return ((TreasureUnloader)stateObject).moveToUnloadPos();
		}
	},
	CHECK_MOVE_TO_UNLOAD_POS_DONE {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return ((TreasureUnloader)stateObject).checkMoveToUnloadPosDone();
		}
	},
	U_TURN {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return ((TreasureUnloader)stateObject).uTurn();
		}
	},
	MOVE_FORWARD_BEFORE_UNLOAD {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return ((TreasureUnloader)stateObject).moveForwardBeforeUnload();
		}
	},
	UNLOAD {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return ((TreasureUnloader)stateObject).unload();
		}
	},
	DONE {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			return START;
		}
	};
}
